Replace a g_assert_not_reached () which could actually be reached by a
authorMatthias Clasen <matthiasc@src.gnome.org>
Tue, 12 Mar 2002 19:49:03 +0000 (19:49 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Tue, 12 Mar 2002 19:49:03 +0000 (19:49 +0000)
* io-bmp.c (DecodeHeader): Replace a g_assert_not_reached ()
which could actually be reached by a proper error status return.

gdk-pixbuf/ChangeLog
gdk-pixbuf/io-bmp.c

index ef78d723415e38a49aca9ac6378ed2cac69305d7..09a0954a7227ff74e2fc2244562edbed9a766943 100644 (file)
@@ -1,3 +1,8 @@
+2002-03-12  Matthias Clasen  <maclas@gmx.de>
+
+       * io-bmp.c (DecodeHeader): Replace a g_assert_not_reached ()
+       which could actually be reached by a proper error status return.
+
 2002-03-05  Matthias Clasen  <maclas@gmx.de>
 
        * test-loaders.c, test-images.h: More random tests. 
index 7f7c2d1ddff5682bbf5eebe94472b97b7727af48..b8f9ee2bb0c57115cacd4ea8cb180cd40b535e7d 100644 (file)
@@ -375,8 +375,14 @@ static gboolean DecodeHeader(unsigned char *BFH, unsigned char *BIH,
        } else if (State->Compressed == BI_BITFIELDS) {
                State->read_state = READ_STATE_BITMASKS;
                State->BufferSize = 12;
-       } else
-               g_assert_not_reached ();
+       } else {
+               g_set_error (error,
+                            GDK_PIXBUF_ERROR,
+                            GDK_PIXBUF_ERROR_CORRUPT_IMAGE,
+                            _("BMP image has bogus header data"));
+               State->read_state = READ_STATE_ERROR;
+               return FALSE;
+       }
 
        State->buff = g_realloc (State->buff, State->BufferSize);